<template>
	明文:{{ ss }} -----加密:{{ pp }}
</template>

<script setup>
import CryptoJS from 'crypto-js';

const key = CryptoJS.enc.Utf8.parse('AOWQ4P0YEC4YXUKS'); //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('O3V2GCL1K2HNZ9Y7'); //十六位十六进制数作为密钥偏移量

let ss = ref('');
let pp = ref('');
function hexToBase64(hexstring) {
	return btoa(
		hexstring
			.match(/\w{2}/g)
			.map(function(a) {
				return String.fromCharCode(parseInt(a, 16));
			})
			.join('')
	);
}
let word = '00C7D7AD63097383EEDAF5E718F01902';
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
let decrypt = CryptoJS.AES.decrypt(srcs, key, {
	iv: iv,
	mode: CryptoJS.mode.CBC,
	padding: CryptoJS.pad.Pkcs7
});
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
ss.value = decryptedStr.toString();

console.log('明文', ss.value);

let word_ = 'test';
let srcs_ = CryptoJS.enc.Utf8.parse(word_);
let encrypted = CryptoJS.AES.encrypt(srcs_, key, {
	iv: iv,
	mode: CryptoJS.mode.CBC,
	padding: CryptoJS.pad.Pkcs7
});
pp.value = encrypted.ciphertext.toString().toUpperCase();
console.log('加密:', pp.value);
</script>

<style></style>
